<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

require_once 'Zend/Form.php';
require_once 'Zend/Form/Element/Select.php';
require_once 'Zend/Form/Element/Text.php';
require_once 'Zend/Form/Element/Button.php';
require_once dirname(dirname(__FILE__)) . '/models/Single/LocalidadEntity.php';
require_once dirname(dirname(__FILE__)) . '/models/Single/TipoDocumentoEntity.php';

/**
 * Description of NuevoCliente
 *
 * @author kristian
 */
class EditarClienteForm extends Zend_Form{

    public function init() {
//        $tiposDoc = array(
//            'doc1' => 'CUIT',
//            'doc2' => 'DNI',
//             'doc3' => 'LE'
//        );
//        $localidades = array(
//            'ciudad1' => 'Puerto Madryn',
//            'ciudad2' => 'Trelew',
//            'ciudad3' => 'Comodoro Rivadavia',
//            'ciudad4' => 'Esquel'
//        );

        $tiposDocModel = new Spalm_Model_Single_TipoDocumentoEntity();
        $arregloTiposDoc = $tiposDocModel->fetchAll();

        $localidadesModel = new Spalm_Model_Single_LocalidadEntity();
        $arregloLocalidades = $localidadesModel->fetchAll();

        foreach ($arregloTiposDoc as $tipoDoc) {
            $tipoDocPk = $tipoDoc->getPK();
            $tipoDocSigla = $tipoDoc->getSigla();

            $tiposDoc[] = array("$tipoDocPk" => "$tipoDocSigla");
        }

        foreach ($arregloLocalidades as $localidad) {
            $localidadPk = $localidad->getPK();
            $localidadNombre = $localidad->getNombre();

            $localidades[] = array("$localidadPk" => "$localidadNombre");
        }

        // Setup form
        $this->setName('Nuevo Cliente');
        $this->setAction($this->getView()->url())->setMethod('post');
        $this->addAttribs(array('onSubmit'=>'return validate(this)'));

        $nombre = $this->createElement(
            'ValidationTextBox',
            'razonSocial',
            array(
                'value' => '',
                'label' => 'Razon Social: ',
                'trim' => 'true',
                'propercase' => 'true',
                'required' => 'true',
                'regExp' => '([A-Z][a-z]*[ ])+',
                'InvalidMessage' => 'No es un nombre válido'
            )
        );

        $tipos = $this->createElement(
            'FilteringSelect',
            'tipoDocumento',
            array(
                'label'        => 'Tipo de documento: ',
                'value'        => $tiposDoc[0],
                'autocomplete' => true,
                'multiOptions' => $tiposDoc,
                'required' => 'true'
            )
        );


        $documento = $this->createElement(
            'ValidationTextBox',
            'nroDocumento',
            array(
                'value' => '',
                'label' => 'Numero de documento: ',
                'trim' => 'true',
                'propercase' => 'true',
                'regExp' => '[0-9]{11}',
                'required' => 'true',
                'InvalidMessage' => 'El número de documento no es valido'
            )
        );

        $ciudades = $this->createElement(
            'FilteringSelect',
            'localidad',
            array(
                'label'        => 'Localidad: ',
                'value'        => $localidades[0],
                'autocomplete' => true,
                'multiOptions' => $localidades,
                'required' => 'true'
            )
        );

        $domicilio = $this->createElement(
            'ValidationTextBox',
            'domicilio',
            array(
                'value' => '',
                'label' => 'Domicilio: ',
                'trim' => 'true',
                'propercase' => 'true',
                'required' => 'true',
                'regExp' => '[A-Z]{1}[a-z]*[ ]{1}[0-9]+',
                'InvalidMessage' => 'No es un domicilio válido. Ingrese calle y altura'
            )
        );

        $telefono = $this->createElement(
            'ValidationTextBox',
            'nroTelefono',
            array(
                'value' => '',
                'label' => 'Numero de telefono: ',
                'trim' => 'true',
                'propercase' => 'true',
                'regExp' => '[0-9]{20}',
                'InvalidMessage' => 'No es un número de teléfono válido'
            )
        );

        $email = $this->createElement(
            'ValidationTextBox',
            'email',
            array(
                'value' => '',
                'label' => 'Correo electronico: ',
                'trim' => 'true',
                'propercase' => 'true',
                'regExp' => '[a-z]+@[a-z].[a-z]{3}'
            )
        );

        $submit = $this->createElement(
            'SubmitButton',
            'submit',
            array(
                'required' => 'false',
                'ignore' => 'true',
                'label' => 'Agregar'
            )
        );

        $this->addElements(array(
                $nombre,
                $tipos,
                $documento,
                $ciudades,
                $domicilio,
                $telefono,
                $email,
                $submit
        )
        );

        $this->render($this->getView());
    }
}
?>
